//
//  DLBaseTextField.h
//  Base
//
//  Created by apple on 16/11/7.
//  Copyright © 2016年 dgg. All rights reserved.
//

#import <UIKit/UIKit.h>

typedef NS_ENUM(NSInteger,TextState) {
    TextState_default=0,//默认类型，限制50字符
    TextState_phone=1,//11位手机号码
    TextState_int=2,//整形
    TextState_money=3,//金额类型
    TextState_cardId=4,//身份证
    TextState_BFB=5,//百分比 0-100
    TextState_email=6,//邮箱类型
    TextState_landline=7,//座机类型
    TextState_bankCard = 8,//银行卡类型
    TextState_name=9,//姓名限制
};

@class DLBaseTextField;
@protocol DLBaseTextFieldDelegate <NSObject>

@optional

/**
 输入完成的回调
 @param textField textField
 */
- (void)textFieldDidBeginEditing:(DLBaseTextField *)textField;
- (void)textFieldDidEndEditing:(DLBaseTextField *)textField;
-(BOOL)textFieldShouldBeginEditing:(DLBaseTextField *)textField;
-(BOOL)textFieldShouldReturn:(DLBaseTextField *)textField;
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;

/// 校验不通过回调，需开发者自行实现提示用户
- (void)textFieldValiteError:(DLBaseTextField *)textField errorMsg:(NSString *)errorMsg;
@end

@interface DLBaseTextField : UITextField<UITextFieldDelegate>
@property (nonatomic, weak) id<DLBaseTextFieldDelegate> myDelegate;
@property (nonatomic, assign)IBInspectable NSInteger textState;
/**
 任何类型都会有默认的字数限制，如果设置了textNumber 不等于0    则以textNumber为准   手机号码  身份证
 TextState_phone手机号码  TextState_cardId身份证  设置无效
 TextState_BFB百分比  设置表示最大百分比  如textNumber = 300    就可以输入最大为300%的百分比    默认100%
 */
@property (nonatomic, assign)IBInspectable NSInteger textNumber;

@property (nonatomic,copy)NSString *subText;

/// 校验不通过回调，需开发者自行实现提示用户
@property (nonatomic, copy) void(^textFieldValiteErrorBlock)(DLBaseTextField *textField, NSString *errorMsg);

@end
